/**
 * 2016，thor.com，all rights reserved。
 * 
 * Project：		palmmall-spi
 * Filename：	SMeterService.java
 * Created：		2016年8月29日
 * Creator：		wolv
 */
package com.thor.palmmall.rest.meter;

import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

import com.thor.commons.entity.BeanOperateInfo;
import com.thor.commons.exception.ThorServiceException;
import com.thor.commons.query.QueryResult;
import com.thor.palmmall.rest.common.AQueryCommonParam;
import com.thor.palmmall.rest.common.AUserGroupLoadParam;
import com.thor.palmmall.rest.common.AUserGroupQueryParam;

/**
 * @author wolv
 *
 */
@Path("/meter")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public interface AMeterService {

  /**
   * 查询使用中的仪表设备
   * 
   * @param storeUuid
   *          需要查询的项目（非空）
   * @param serialNumber
   *          需要查询的合同编号（可以为空
   * @param categoryCode
   *          需要查询的仪表类型代码（可以为空）
   * @return
   * @throws ThorServiceException
   */
  @GET
  @Path("/meters")
  List<AMeter> queryMeters(@QueryParam("storeUuid") String storeUuid,
      @QueryParam("serialNumber") String serialNumber,
      @QueryParam("categoryCode") String categoryCode) throws ThorServiceException;

  @GET
  @Path("/{uuid}")
  AMeter getMeter(@PathParam("uuid") String uuid) throws ThorServiceException;

  @POST
  @Path("/input")
  String create(AMeterInput meterInput, @QueryParam("") BeanOperateInfo operateInfo)
      throws ThorServiceException;

  @POST
  @Path("/input/{id}")
  AMeterInput get(@PathParam("id") String id, AUserGroupLoadParam param)
      throws ThorServiceException;

  @POST
  @Path("/input/query")
  QueryResult<AMeterInput> query(AQueryCommonParam param) throws ThorServiceException;
}
